package cn.chenyumeng.blog.mapper;

import cn.chenyumeng.blog.entity.BlogTag;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @program: blog->BlogTagsMapper
 * @description:
 * @author: cg
 * @create: 2020-07-27 00:15
 **/
@Mapper
public interface BlogTagMapper {

    /**
     * 查询所有
     * @return
     */
    List<BlogTag> queryAll();

    /**
     * 通过博客Id获取博客和标签关联集
     * @param blogId
     * @return
     */
    List<BlogTag> selectBlogTagsByBlogId(Long blogId);

    /**
     * 通过标签集获取博客和标签关联集
     * @param tagIds
     * @return
     */
    List<BlogTag> selectBlogTagsByTagIds(@Param("tagIds") List<Long> tagIds);

    /**
     * 通过博客ID删除博客和标签关联
     *
     * @param blogId 博客ID
     * @return 结果
     */
    int deleteBlogTagByBlogId(Long blogId);

    /**
     * 批量删除博客和标签关联信息
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    int deleteBlogTags(@Param("ids") Long[] ids);

    /**
     * 查询标签使用数量
     *
     * @param tagId 标签ID
     * @return 结果
     */
    int selectCountBlogTagByTagId(Long tagId);

    /**
     * 批量新增博客和标签信息
     *
     * @param blogTagList 博客和标签列表
     * @return 结果
     */
    int batchBlogTag(List<BlogTag> blogTagList);

}
